home *** CD-ROM | disk | FTP | other *** search
/ Professional Soft Collection 1.02 / Professional Soft Collection 1.02.iso / winutils / winutl2.zip / CHKBOOK.DOC < prev    next >
Text File  |  1989-01-18  |  27KB  |  486 lines

  1. Windows Checkbook Program
  2.  
  3. Introduction
  4. ------------
  5. This program was written to help you manage your personal finances through the
  6. use of Microsoft Windows.  It contains several selections including deposits,
  7. withdrawals, corrections, void checks, clearing of checks, reports and bank
  8. book balancing.
  9.  
  10. It also contains inquiries by several data items which would normally be
  11. useful.  These inquiries can be printed to an existing printer for hardcopy
  12. and storage.
  13.  
  14. Hardware/Software Requirements
  15. ------------------------------
  16. IBM PC XT,AT or PS/2 (100% compatible)
  17. Color Display (work best with EGA/VGA)
  18. Printer (system detects type)
  19. DOS 3.0 or higher
  20. Microsoft Windows 2.0 or higher
  21.  
  22. Setting up the System
  23. ---------------------
  24. The system will automatically set itself up when you first start up the
  25. program.  All you need to do is put the executable file, CHKBOOK.EXE into the
  26. directory you wish to run from.  When the program is started (by opening or
  27. double-clicking), it will create some files.  They have .IDT or .IKY in the
  28. file suffix.  These are the data files the program uses to keep your records.
  29. There is a set for the categories, one for the Payees and one for the check
  30. data.  After the system starts up for the first time, it is suggested that you
  31. update the categories and put all of them in that you need.  If you want to add
  32. one later, you can do so at any time, it will just add a step when you put
  33. data in.  If known, you should also put at least the payee names in the payee
  34. data set. Again, they can be put in any time, it just adds another step.  The
  35. only other step necessary to set up the system is to put in the beginning
  36. balance.  This should be done with a deposit adjustment with the amount of the
  37. balance you want to start with (see the section on Deposits for more specific
  38. information).  The next check is the suggested next check number based on the
  39. last entered check, it can by incorrect if you enter checks out of order.
  40.  
  41. Program Operation
  42. -----------------
  43. After you start the program you will notice that it just sits there with an
  44. open window and an arrow.  If there is text in the window other than the
  45. balance information at the bottom, the program had a problem starting up, if
  46. it is empty, the system came up OK.
  47.  
  48. The program simulates 'multi-threads'.  That means you can do more than one
  49. operation at a time.  The only things that are single threaded are the
  50. Inquiry/Report transactions.  All other transactions can be open at the same
  51. time.  The program will not allow you to open multiple copies of the same
  52. transaction (ie you can only do one 'Deposits') but you can do anything with
  53. anything else.  This means that if you need to put in a payee, you can do so
  54. while you are entering the withdrawal.  It also means that you can put in
  55. a category in during corrections, deposits, withdrawals, etc. Be careful when
  56. executing many transactions at one time, memory will be eaten up and the
  57. program may fail to respond.
  58.  
  59. The program opens the files once, per transaction.  If you crash the system or
  60. switch to something else and forget to come back, you may lose data.  Always
  61. quit, or at least quit all individual transactions, before switching.  If you
  62. lose data or the keys and data get out of synch, you can recover the file with
  63. only a good checks.idt.  See file recovery for more information.  You must
  64. end all transactions before ending.  The system will tell you that you have
  65. an open transaction and will not quit until all transactions are closed down.
  66.  
  67. Application Philosophy
  68. ----------------------
  69. The application uses the standard accounting philosophy that once you make an
  70. entry, you should only adjust it.  In that light, you cannot correct an amount
  71. once a transaction is accepted.  The adjustments within deposits and withdrawals
  72. are for correcting your balance.  You can void a check and this will add
  73. the check amount back into the balance, however, the record of that check is
  74. still kept and that number is considered used.  There is no way to delete a
  75. check once accepted (again a philosophical decision).  However if you are handy at
  76. programming, the file layout for the checks.idt is included in the appendix.
  77. Please recover your files if you decide you want to 'fix' the file, the .iky
  78. files must be in synch and the reog will guarantee that.  You CAN correct the
  79. date, memo and category at any time with the Corrections transaction.
  80. You cant currently change the payee once accepted.
  81.  
  82. The balancing algorithm takes the bank balance, all outstanding 'pluses'
  83. and all outstanding 'minuses' and reconciles them.  The difference should be
  84. zero, however adjustments are considered cleared and could cause discrepancies
  85. if not considered.
  86.  
  87. Files
  88. -----
  89. The files with .IDT in the suffix are actually data files you can read with a
  90. high-level language.  You can't read them with a plain editor because they
  91. contain binary data.  The .IKY files are the indexes for the .IDT files and
  92. should always be in the same directory.  If the .IKY files get corrupted or are
  93. removed, they can be recreated, so long as the .IDT files are in tact.  In fact,
  94. the payee files and the keys for the checks can be rebuilt if all you have
  95. left is the checks.idt.  The categories are just for reference and can be
  96. readded if they get lost.  Upon startup or initialization of the files, there
  97. are specific categories which get set up, these are the defaults used by the
  98. deposits and withdrawals.  The names of those categories can be changed,
  99. but should not be 'blanked', all other category letters are open territory for
  100. any use you want.  The payee file is intialized to a blank file and contains no
  101. defaults or data.  The check file will contain one record, a control record,
  102. for keeping the running balance and the next avaialble check number.  NEVER
  103. change or remove this record, although the system doesnt allow you to, if you
  104. ever get access to the record, leave it alone, use adjustments to update
  105. incorrect balances.  There is an account file which 'points' to the other files.
  106. It can be used to set up multiple files in the same directory or in other
  107. disks or directories.  The system starts up with the default account, but it
  108. can be changed with a simple menu selection once started.  You MUST have this
  109. file (accnt.idt,accnt.iky) in the SAME directory as your program (chkbook.exe).
  110.  
  111. You should always back up your files after updating.  To do this just copy the
  112. entire directory to a floppy disk (if you set up an separate directory for this
  113. program) or copy the files as follows:
  114.     
  115.     copy chkbook.exe a:
  116.     copy *.idt       a:
  117.     copy *.iky       a:
  118.  
  119. Occasionally there may be a file called TEMP in the directory, you may remove
  120. this file if you are not running the program.  If you are running the program,
  121. dont remove it unless you quit the program and it is still there.
  122.  
  123. Options and Operations
  124. ----------------------
  125. Maintenance
  126. -----------
  127. There are 11 options under maintenance.  The Exit will end the program.  Some
  128. of the others have serious effects on the system and should be thought about
  129. before using.
  130.  
  131. Start New Year:  This option is for beginning a new year of checks.  It will
  132. DELETE all cleared checks.  You should back up your files before running this
  133. option, once you have run this, those records are physically deleted and cannot
  134. be recovered.
  135. Although this is not mandatory, its a good idea to do this once a year.  The
  136. program can get slow after 800 to 900 checks and this will increase performance.
  137. The inquiries will also only sort 1500 records.  Using this, with caution, will
  138. help keep yearly data segregated.  It leaves un-cleared checks in the file
  139. for the next clearing process.
  140.  
  141. New Account File:  This initializes the accnt.idt and .iky files.  It builds a
  142. default account (0) and sets up the default file names (these can be changed).
  143. You put the pointers to your accounts in this file and it MUST reside in the
  144. same directory as the program code (chkbook.exe).
  145.  
  146. New Master File:  This initializes the checks.idt and .iky files.  It builds a
  147. zero balance control record.  Again, this can be devastating if you haven't
  148. backed up your files.  This is to be used VERY RARELY, if ever.  Its much
  149. better to reorganize, than to start all over.
  150.  
  151. New Payee File:  This initializes the payee.idt and .iky files.  It blanks out
  152. the payee master.  This is not quite as disasterous as the New Master File
  153. because it will read the checks.idt file and rebuild the names and balances.
  154. You will lose all of the addresses you have entered. You can rebuild the
  155. balances without losing the addresses by using the Rebuild Payee Balances item.
  156. Again, not something you want to do on a regular basis.
  157.  
  158. New Category File:  This will initialize the catgy.idt and .iky files.  It will
  159. place the defaults into the file, but you will have to reenter the others that
  160. you have put in.  This does not affect any other part of the system, except
  161. for creating an error if you try to enter a check without restoring the
  162. category descriptions.
  163.  
  164. Update Accounts:  Use this to add account information.  A default account is
  165. automatically set up for you, however any information, except the account id,
  166. can be changed to your satisfaction.  You can add accounts and change them.  The
  167. data is mostly disk file information.  The names of the data sets can be set to
  168. any name that is meaningful to you up to 6 characters.  The system will append
  169. an .idt and .iky to the names you give.  The path can be any valid path, you must
  170. enter a : if you specify a drive, however the ending \ is not required.
  171. For example:  C:\chkbook is valid, c:\chkbook\ is also valid.  \checkbk\ is
  172. valid and defaults to the drive your program is on.  All other data is free form.
  173. You can select an existing account for update by either typing in the ID or
  174. 'selecting' the account by using the select option in the menu.  You double-click
  175. the account you want in the list box that appears and the info will be filled in
  176. just like you had typed in the id and hit return.
  177.  
  178. Update Categories:  This is the transaction used to add, change or remove a
  179. category.  To remove a category, blank out its description.  To add or change
  180. one, just type in a new description.  The description is just used as a
  181. reference. A blank description is significant, it tells the system
  182. that this is not a valid category.
  183.  
  184. Update Payees:  This is where you add. change or delete a payee.  Enter a
  185. payee name in the payee name field and press <Enter> or click on the RETRIEVE
  186. button.  If it doesn't exist, the left button will change to ADD and there
  187. should be a message stating that the information was not found.  Just fill in
  188. the data and press <Enter> or click ADD.  The data will be added and a message
  189. saying so should appear.  Changes will change the button to UPDATE and you can
  190. just type over the data.  You cannot change the balance of a payee, that is
  191. calculated by the system when checks are put in or voids are processed.  Again
  192. <Enter> or clicking the UPDATE button will store the data and a message will
  193. tell you if you were sucessful or not.  To delete a payee, the payee
  194. cannot have any checks written against it, cleared or otherwise.  The system
  195. will tell you that if you try to delete one that does.  Deleting also requires
  196. two clicks.  You must check the Delete? checkbox AND press <Enter> or click
  197. UPDATE.  You can cancel an update at any time by pressing <Esc> or clicking
  198. CANCEL.  To exit the transaction click <Exit>. You can select a payee for update
  199. by accessing the Select menu item.  A list box will show you all of the currently
  200. defined payees.  Double click the one you want and the data will appear
  201. in the update dialog window.
  202.  
  203. Rebuild Payee Balances:  This transaction reads the checks.idt file and
  204. recalculates the Payee Balance field.  It requires no other intervention and
  205. should be used when the balances get out of synch with the check file (This
  206. should never happen, but it's possible).  It is harmless in the fact that it
  207. only affects the balances, actually correcting them.  Having to use it is
  208. significant and the reason should be understood.  See 'Full Database Recovery'
  209. for more information.
  210.  
  211. Reorg Check Data Set:  This will rebuild the .IKY file from the checks.idt
  212. data set.  This is how you recover a lost .IKY file or an out-of-synch one.
  213. Having to do this is serious if it is being done to recover lost or currupted
  214. files.  Use with caution. See 'Full Data Base Recovery' for more information.
  215.  
  216. Exit:  This exits the application and shuts its down, recording all updates
  217. permenantly to disk. (All the files are closed).  You must have no active
  218. transactions to use this item (and the one in the system menu).  The program
  219. will display a message box telling you you have active transactions and will
  220. not shut down until you end them, this was done for file integrity.
  221.  
  222.  
  223. Transactions
  224. ------------
  225. Note: All transactions 'act' the same way.  To exit, you click the Exit button, to cancel use <Esc> or click Cancel, to accept use <Enter> or click Update.  Each transaction is edited as follows:
  226.  
  227.     1. Category must exist
  228.         2. Payee must exist unless it begins with a '.' or is some form
  229.            of the word miscelleanous.
  230.     3. Amount must be numeric
  231.     4. Date must be valid
  232.     5. Number cannot already exist, even in a cleared or
  233.        voided state.
  234.     6. All 'non-check' items start with a 6 and are 4 digits
  235.        long.  Check number must be numeric can be any number,
  236.            so long as it doesn't already exist.
  237.         7. All new items, except adjustments, are marked as un-cleared.
  238.            Adjustments are marked as 'cleared' automatically.
  239.         8. Payees/categories/Accounts can be selected from a list box
  240.            where appropriate and the entries will be made into the
  241.            current dialog
  242.  
  243. Deposits:  The deposit transaction is an add to the running balance.  There
  244. are several options set up.  The number is automatically calculated, and the
  245. date will default to today, or the date used for the previous transaction
  246. before Exiting.  To change the balance upwards, enter a deposit adjustment.
  247. It will add to the running balance (NOT replace it) and will be marked as
  248. cleared.  The date, amount, memo and category can be changed at will.  Payee
  249. and Number are fixed and cannot be changed.  You can choose to clear or not
  250. clear a deposit adjustment.  Check or uncheck the clear adjustment check box
  251. for what you want to do.  Clearing a deposit adjustment automatically
  252. can cause balancing problems later on (see balancing).
  253.  
  254. An error will place the cursor on the field in error and display a message
  255. telling you what is wrong.  Likewise a good transaction will be accepted and
  256. you will get a message saying so.  The number is then increased by 1 for the
  257. next deposit or withdrawal and the running balance is increased and redisplayed.
  258. If you have a withdrawal window open, the number that was displayed will be
  259. changed to a new one when that window is activated.
  260.  
  261. Withdrawals:  The withdrawal transaction is a subtraction from the running
  262. balance.  Again there are several options,  they all work the same way except
  263. for Check.  When the Check radio button is selected, the Number and Payee
  264. fields are enabled and you can then enter them.  There is a 'suggested' number
  265. placed into the number field.  This number is based on the last accepted check.
  266. To choose another number, just type over it.  The other options will disable
  267. those fields.  For a Check, the payee must exist and the number must not exist.
  268. There is also a check box to mark an item as  a tax item.  To make a check a
  269. tax item, click in the box.  You can uncheck the box before your store it if you
  270. change your mind.  You can choose to clear or not clear a withdrawal adjustment
  271. by checking or unchecking the clear adjustment check box.  Automatically clearing
  272. an adjustment can cause balancing problems later on (see balancing);
  273. Again, as in the deposit, an error will give an appropriate message and an
  274. accepted withdrawal will display an accepted message.  If you have
  275. a deposit window open, and you do a 'non-check', the number will be updated
  276. when that window is activated.  An adjustment will be marked as cleared.
  277. This is how you would adjust the running balance downwards.  You cannot
  278. currently 'print' a check.  You must hand write it and then record it
  279. appropriately.
  280.  
  281. Lists
  282. -----
  283. Inquiries/Repts:  This transaction will display your data and generate reports.
  284. It reads the check master and displays the data in the main window.  The order
  285. is selected by the menu item.  Totals for each group are included for the payee,
  286. category and DR/CR options.  The date and number options will be a flat list
  287. with no breaks.  You can print the displayed data be selecting the 'Print to
  288. Report' option.  It will be formatted and printed for your printer with
  289. appropriate headings and totals.  The last menu item displays/prints your
  290. payee file in payee name order.  The payee name and check number options are
  291. FASTER than the others.  No sort is necessary for those two options.  If you
  292. put more than 1500 items in the file, you can still do those two inquiries, as
  293. well as the payee list.  The other options may cause failures in the system
  294. when there are more than 1500 items.
  295.  
  296. The CCCT fields in the report/inquiry are the Cleard, Credit/Debit, Category
  297. and Tax Item fields respectively.  A void check shows an * in the Cleared field.
  298. A 'Y' means the record has cleared and an 'N' measn it hasn't.  The Credit/Debit
  299. field shows whether a record increased (+) or decreased(-) the running balance.
  300. The category is the category character.  For example *-X means a void check
  301. which subtracted from the balance and is in category X.  Y+S is a cleared
  302. deposit in category S, etc.  The Tax Item is Y for Yes or N for No. When
  303. selecting the report/inquiry by Tax Item, only items with numbers < 6000 are
  304. selected since this field has no meaning for any other type of transaction.
  305.  
  306. You can display the full line(s) of output by clicking the 'expand' arrow in
  307. the upper left corner of the display window.  Otherwise, the memo field is
  308. only partially displayed.
  309.  
  310. Corrections
  311. -----------
  312. Data Corrections:  You can correct Dates, Categories and Memo data with this
  313. option.  You cannot correct amounts or payees.  You can also 'un-clear' a
  314. record.  To correct data, enter the number (it will either be a 6xxx type
  315. number or the check number).  The data will be brought up for you
  316. to type over.  Editing is performed as if the data was totally new.  For
  317. example, if you got rid of a category, the record will display, but will not
  318. change until you add the category back.  To un-clear a record, just check
  319. the 'Un-clear' check box before updating.  This will put it back into the
  320. system as an active record and can be cleared or updated as usual.  You CAN
  321. update void or cleared records, however the void state is not changed, and the
  322. clear state is only changed when you check the 'un-clear' box.  The Tax Item
  323. box works the same was as the original withdrawal.  You can check or uncheck
  324. it as you desire.
  325.  
  326. Void Checks:  This transaction will void a check.  It is different in that it
  327. only works on checks.  It actually adds the amount of the check back into the
  328. balance and marks the record as void.  It does NOT remove the check number
  329. from the system and you cannot use that number again.  You also
  330. cannot un-void a check like you can a cleared check.  It is suggested that you
  331. use a number like 5xxx (it must be less than 6000), where the xxx is the original
  332. number, to rewrite a check which was mistakenly voided and note it as such in
  333. the memo field.
  334.  
  335. Balancing
  336. ---------
  337. Clear Checks: This option is the start of the balancing process.  It is where
  338. you  clear your records.  The program will display only records which are not
  339. cleared.  As a record is displayed, you can Clear it (by clicking Clear), not
  340. clear it (by clicking Skip) or exit the program.  If you accidentally clear a
  341. record, you can 'un-clear' it by using the data correction transaction
  342. previously described.  The records are presented in 'number' order.  Your
  343. checks will show up first, and then all of the other items,
  344. in the order they were entered.  This follows your bank statement format
  345. (generally).  After clearing all of your records, you should enter all of your
  346. service charges, missed items, etc and clear those items.  Remember, the only
  347. transactions which are automatically marked as cleared are adjustments.
  348. Service charges are not automatically marked, so you have to go back and clear
  349. them also.  After you have cleared your records you can then check your
  350. balance using the 'Balance Bank Statement' option.
  351.  
  352. Balance Bank Statement:  The system will ask you for the balance from your
  353. bank statement.  After entering it, the program will search through your
  354. records and calculate, from your open records, what your balance says it
  355. should be.  This is not the running balance, it is the running balance plus all
  356. your open deposits minus your open withdrawals.  This calculated number
  357. should match your bank's balance.  A report is printed showing all of your open
  358. items, and a spearate page showing the calculation and any descrepancy.
  359. A descrepancy is usually a forgotten transaction or an adjustment which has
  360. been marked as cleared, but has not been processed by the bank.  After finding
  361. the error, you should correct your data by entering a deposit adjustment or
  362. withdrawal adjustment for the amount you are out of balance.  Just to make
  363. sure, you should rebalance and check for a zero discrepancy.  The intial report
  364. is sent to the display unless the Display check box is 'unchecked'.  If the
  365. check box is 'unchecked' a complete report of all open items and the balancing
  366. data will print on your printer.
  367.  
  368. Appendixes
  369. ----------
  370. A. Full Database Recovery
  371. -------------------------
  372. A full file recovery should not be performed or considered lightly.  The best
  373. recovery is just to recopy the files from your backup disk.  If, for some
  374. reason, you dont have a backup, you can recover as long as you have a good
  375. checks.idt file.  DO NOT start up the program if you dont have the two .IKY
  376. files to go with it, if the system detects a bad or missing file, it will
  377. build a new one and then your only hope will be gone.  You must create two
  378. dummy .iky files to fool the system into thinking its ok. The procedure is as
  379. follows (assumes you only have a good checks.idt file):
  380.  
  381.         1.  Copy the checks.idt file to another directory.  If your other
  382.             files or OK copy them too (catgy.idt, catgy0.iky, payees.idt,
  383.             and payees0.iky).
  384.     2.  Run the program and let it create new, clean files.
  385.     3.  Quit the program
  386.     4.  Copy the checks.idt file from the other directory to
  387.         the program directory.  DO NOT remove the copy yet.
  388.     5.  Start the program.  If it starts to recreate the 
  389.         files, you have got a corrupted checks.idt file
  390.         and you have to start all over again.
  391.     6.  If the system did not recreate the files, select the
  392.             'Reorg check data set' under maintenance.  Note that
  393.             the running balance line may be incorrect at this point.
  394.             After the reorg completes, the running balance should be
  395.             OK.  If not, you have a bad checks.idt file.
  396.         7.  If you have lost the payee files, continue on.  If not
  397.             you should copy the payees*.* and catgy*.* from your saved
  398.             files and then run the rebuild balances transaction, otherwise
  399.             after the reorg completes, select the 'Initialize
  400.         Payee File' option under maintenance.  This will
  401.             recreate a good payee file without addresses.
  402.         8.  Reinput your categories if necessary.
  403.         9.  Quit the program and BACK UP ALL YOUR FILES.
  404.         10. Remove the COPY of your files in the save directory.
  405.         11. BACK UP YOUR FILES.
  406.  
  407. B. CHECKS.IDT 'C' File Layout
  408. -----------------------------
  409. typedef struct {
  410.   char   check_key1[5];
  411.   char   check_key2[31];
  412.   char   check_payee[26];
  413.   int    check_number;
  414.   char   check_date[9];
  415.   short  check_tax;
  416.   double check_amount;
  417.   char   check_memo[31];
  418.   char   check_category;
  419.   int    check_cleared;
  420.   int    check_credit;
  421.   int    check_voided;
  422. } tCheck;
  423.  
  424. C. New Features and fixes for 4.01.ISM
  425. --------------------------------------
  426.  1. Home/End now work in dialog items.
  427.  2. Printing while inquiring no longer makes the inquiry double spaced
  428.  3. You no longer have to quit to do multiple inquiries after printing
  429.  4. Reorg no longer trashes the control record during full database recovery
  430.  5. Help now works
  431.  6. 'Tax Item' processing was added to withdrawals and corrections.
  432.  7. 'Tax Item' display was added to inquires, clear and void.
  433.  8. Unclear is now enabled for only cleared items in corrections.
  434.  9. Miscelleanous is now valid as a Payee (any derivation which starts with
  435.     misc, e.g. Misc. misc., misc, miscelleanous, MiScElLe, etc.)
  436. 10. 'Suggested next check number' was added for withdrawals
  437. 11. Running balance display was changed to accomodate suggested next check
  438.     number.
  439. 12. Corrected enabling of non-existant dialog items in void processing.
  440. 13. Data set open/close was moved to the transaction rather than just at the
  441.     beginning of the program.
  442. 14. Inquiry now displays a full line on CGA and EGA displays as well as
  443.     VGA displays.
  444. 15. Color on totals was changed so it shows up on monochrome screens.
  445.  
  446. D. New Features and fixes for 4.02.ISM
  447. --------------------------------------
  448. New:
  449.  1. New features menu item will display any new items online.
  450.  2. Multiple accounts were added.
  451.  3. Selection list boxes for accounts, payees and categories.
  452.  4. Clear/Unclear adjustments at will.
  453.  5. Sort size increased to 1500 items.
  454.  6. Top window becomes active when closing another window in multiple
  455.     transaction mode.
  456.  7. Elimated page eject BEFORE printing reports.
  457.  8. Can balance to display or printer.
  458.  
  459. Fixes:
  460.  9. Sort order on date sort corrected
  461. 10. System hang while doing many inquiries in one session fixed.
  462. 11. Invalid window handles in main loop routine NULL'ed. (tech-talk)
  463. 12. Can no longer exit with open transactions.
  464. 13. Can no longer delete a payee with items in the check file.
  465. 14. Multiple message boxes in reorg/new year reduced to one.
  466. 15. Various annoying 'features' cleaned up.
  467.  
  468. E. Miscelleanous
  469. ----------------
  470. If you do not have WIN87EM.EXE, you can download it from the Microsoft
  471. Windows Developers forum on Compuserve.  This file is required to run this
  472. program. (As I found out the hard way).
  473.  
  474. Send inquiries/questions to:
  475.  
  476. Bob Sigmon
  477. 76354,1427 (Compuserve ID)
  478.  
  479. Either through EMAIL or the Microsoft Application Forum.
  480.  
  481. I check regularly and will answer (or try to anyway) any questions or problems
  482. you have with this program.  I am also open for any improvements/updates you
  483. would like to see, within reason.
  484.  
  485. This program is FREE, except for the download charges.
  486.